<html>
<head><meta charset="utf-8"><title>planning / status · z-archived-t-compiler/wg-rls-2.0/chalk · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/index.html">z-archived-t-compiler/wg-rls-2.0/chalk</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html">planning / status</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="164468980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/164468980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#164468980">(Apr 29 2019 at 17:01)</a>:</h4>
<p>Hey <span class="user-mention" data-user-id="129457">@Florian Diebold</span>, <span class="user-mention" data-user-id="133169">@matklad</span> -- have either of you got a minute?</p>



<a name="164469124"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/164469124" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#164469124">(Apr 29 2019 at 17:03)</a>:</h4>
<p>I'm thinking about the next steps for chalk integration, and wanted to talk more about rust-analyzer and how it should fit together</p>



<a name="164469210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/164469210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#164469210">(Apr 29 2019 at 17:04)</a>:</h4>
<p>I am around</p>



<a name="164469220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/164469220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#164469220">(Apr 29 2019 at 17:04)</a>:</h4>
<p>and <span class="user-mention" data-user-id="129457">@Florian Diebold</span> actually added chalk to ra: <a href="https://github.com/rust-analyzer/rust-analyzer/pull/1216" target="_blank" title="https://github.com/rust-analyzer/rust-analyzer/pull/1216">https://github.com/rust-analyzer/rust-analyzer/pull/1216</a> :D</p>



<a name="164469524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/164469524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#164469524">(Apr 29 2019 at 17:08)</a>:</h4>
<p>Ah, cool</p>



<a name="164469527"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/164469527" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#164469527">(Apr 29 2019 at 17:08)</a>:</h4>
<p>So</p>



<a name="164469531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/164469531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#164469531">(Apr 29 2019 at 17:08)</a>:</h4>
<p>Well, let me skim that PR I guess</p>



<a name="164469995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/164469995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#164469995">(Apr 29 2019 at 17:14)</a>:</h4>
<p>ok, that's a bit much to skim :)</p>



<a name="165062719"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165062719" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165062719">(May 07 2019 at 11:31)</a>:</h4>
<p>By the way, I've now implemented support for where clauses, but have huge performance problems, as in some queries seem to basically never finish. As far as I can tell, one of the reasons seems to be that in a case like <code>where T: Foo, T: Bar</code>, Chalk will request all impls for <code>Foo</code> and then for each of those impls request all impls for <code>Bar</code>. So I'm now looking into implementing a 'type fingerprint' thing so that we (hopefully) don't get this multiplicative behavior.</p>



<a name="165071260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165071260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165071260">(May 07 2019 at 13:39)</a>:</h4>
<p>Yeah, the current code for requesting impls is super naive in this way</p>



<a name="165091135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165091135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165091135">(May 07 2019 at 17:15)</a>:</h4>
<p>Hmm I think what I'm actually running into is <a href="https://github.com/rust-lang/chalk/issues/217" target="_blank" title="https://github.com/rust-lang/chalk/issues/217">https://github.com/rust-lang/chalk/issues/217</a>, just with <code>Send</code> instead of <code>Sized</code></p>



<a name="165092317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165092317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165092317">(May 07 2019 at 17:29)</a>:</h4>
<p>Sounds plausible. I was thinking about that last night and feeling doubts about the best solution :/</p>



<a name="165102916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165102916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165102916">(May 07 2019 at 19:30)</a>:</h4>
<p>I've managed a small reproduction:</p>
<div class="codehilite"><pre><span></span><span class="c1">//- /main.rs</span>
<span class="k">trait</span><span class="w"> </span><span class="nb">Send</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>

<span class="k">struct</span> <span class="nc">S1</span><span class="p">;</span><span class="w"> </span><span class="k">impl</span><span class="w"> </span><span class="nb">Send</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">S1</span><span class="p">;</span><span class="w"></span>
<span class="k">struct</span> <span class="nc">S2</span><span class="p">;</span><span class="w"> </span><span class="k">impl</span><span class="w"> </span><span class="nb">Send</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">S2</span><span class="p">;</span><span class="w"></span>
<span class="k">struct</span> <span class="nc">U1</span><span class="p">;</span><span class="w"></span>

<span class="k">trait</span><span class="w"> </span><span class="n">Trait</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="k">fn</span> <span class="nf">method</span><span class="p">(</span><span class="bp">self</span><span class="p">);</span><span class="w"> </span><span class="p">}</span><span class="w"></span>

<span class="k">struct</span> <span class="nc">X1</span><span class="o">&lt;</span><span class="n">A</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
<span class="k">impl</span><span class="o">&lt;</span><span class="n">A</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="o">&gt;</span><span class="w"> </span><span class="nb">Send</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">X1</span><span class="o">&lt;</span><span class="n">A</span><span class="p">,</span><span class="w"> </span><span class="n">B</span><span class="o">&gt;</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">A</span>: <span class="nb">Send</span><span class="p">,</span><span class="w"> </span><span class="n">B</span>: <span class="nb">Send</span> <span class="p">{}</span><span class="w"></span>

<span class="k">struct</span> <span class="nc">S</span><span class="o">&lt;</span><span class="n">B</span><span class="p">,</span><span class="w"> </span><span class="n">C</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>

<span class="k">trait</span><span class="w"> </span><span class="nb">Fn</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>

<span class="k">impl</span><span class="o">&lt;</span><span class="n">B</span><span class="p">,</span><span class="w"> </span><span class="n">C</span><span class="o">&gt;</span><span class="w"> </span><span class="n">Trait</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">S</span><span class="o">&lt;</span><span class="n">B</span><span class="p">,</span><span class="w"> </span><span class="n">C</span><span class="o">&gt;</span><span class="w"> </span><span class="k">where</span><span class="w"> </span><span class="n">C</span>: <span class="nb">Fn</span><span class="p">,</span><span class="w"> </span><span class="n">B</span>: <span class="nb">Send</span> <span class="p">{}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">test</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="p">(</span><span class="n">S</span><span class="w"> </span><span class="p">{}).</span><span class="n">method</span><span class="p">();</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</pre></div>


<p>Type inference on <code>test</code> takes over 3 minutes; if I remove S2, it goes down to 20 seconds; switching the order of the where clauses in the last impl makes it work instantly. It seems to enumerate a huge number of possibilities for <code>?0: Send</code>. (Note that <code>Send</code> isn't even an auto trait in the test.)</p>



<a name="165110760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165110760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165110760">(May 07 2019 at 21:01)</a>:</h4>
<p>Yeah, the engine can definitely do that sometimes. This is exactly the sort of feedback I was interested in exploring</p>



<a name="165110888"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165110888" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165110888">(May 07 2019 at 21:03)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> does chalk has "fuel" thing? I think we should add it: it seems for IDE stuff you want to add fuel basically everywhere</p>



<a name="165110904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165110904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165110904">(May 07 2019 at 21:03)</a>:</h4>
<p>As in, to be responsive, IDE should be a primitive recursive function :D</p>



<a name="165111027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165111027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165111027">(May 07 2019 at 21:05)</a>:</h4>
<p>That is, we certainly need to fix this bug, but I expect that fixing all of the bugs will be really hard, and just adding a "fuel" safeguard on top can help to contain the bug's effects</p>



<a name="165111146"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165111146" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165111146">(May 07 2019 at 21:06)</a>:</h4>
<p>it doesn't, but it's plausible we could add it</p>



<a name="165111167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165111167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165111167">(May 07 2019 at 21:06)</a>:</h4>
<p>it's made to be "resumable" in this way</p>



<a name="165111318"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165111318" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165111318">(May 07 2019 at 21:08)</a>:</h4>
<p>My gut feeling is that fuel will be very welcome. And an interesting question here is how do we integrate fuel with salsa: if you just make "fuel tank" a query parameter, you lose incremental efficency (nothing is cached due to fuel fluctuation). If you use some kind of interior mutability, you lose incremental soundness.</p>



<a name="165113046"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165113046" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165113046">(May 07 2019 at 21:29)</a>:</h4>
<p>well, trait solving is already a "volatile" activity</p>



<a name="165113073"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165113073" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165113073">(May 07 2019 at 21:29)</a>:</h4>
<p>(but I haven't looked closely at how you integrated it into the RLS queries)</p>



<a name="165113079"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165113079" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165113079">(May 07 2019 at 21:29)</a>:</h4>
<p>that said, there is also some existing set of "limits"</p>



<a name="165113088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165113088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165113088">(May 07 2019 at 21:29)</a>:</h4>
<p>e.g., a <code>max_size</code> which limits how deeply the size of types that we will construct</p>



<a name="165113096"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165113096" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165113096">(May 07 2019 at 21:29)</a>:</h4>
<p>for the time being, dialing that down may help</p>



<a name="165113244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165113244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165113244">(May 07 2019 at 21:31)</a>:</h4>
<p>(this is in the <code>SolverConfig</code>)</p>



<a name="165410213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165410213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165410213">(May 11 2019 at 12:52)</a>:</h4>
<p>Setting <code>max_size</code> to 6 from 10 makes the test complete instantly again. What exactly does this control, would <code>A&lt;B&lt;C&lt;D&gt;&gt;&gt;</code> have size 4? If so, I assume we can set it to e.g. 4 and still have very little impact on most uses, right?</p>



<a name="165412756"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165412756" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165412756">(May 11 2019 at 13:54)</a>:</h4>
<p>Hm, actually even with 4 it takes too long in some functions in RA :/</p>



<a name="165412988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165412988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165412988">(May 11 2019 at 14:00)</a>:</h4>
<p>With 2, it doesn't run into any slow cases on RA, but I don't know if that's still a reasonable value...</p>



<a name="165413009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165413009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165413009">(May 11 2019 at 14:01)</a>:</h4>
<p>Make it <code>2.42</code>? :)</p>



<a name="165413354"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165413354" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165413354">(May 11 2019 at 14:09)</a>:</h4>
<p>by the way, <a href="https://github.com/rust-lang/chalk/pull/226" target="_blank" title="https://github.com/rust-lang/chalk/pull/226">https://github.com/rust-lang/chalk/pull/226</a> is exciting, it'll probably give us impl Trait support for very little work :)</p>



<a name="165426180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning%20/%20status/near/165426180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/191167-z-archived-t-compiler/wg-rls-2.0/chalk/topic/planning.20.2F.20status.html#165426180">(May 11 2019 at 19:44)</a>:</h4>
<p>I've tried implementing fuel in Chalk, and it doesn't seem very hard: <a href="https://github.com/rust-lang/chalk/pull/227" target="_blank" title="https://github.com/rust-lang/chalk/pull/227">https://github.com/rust-lang/chalk/pull/227</a> Of course this might mean we sometimes get different answers depending on how much the Solver had already cached; can this be a problem?</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>